 | | REPETICIÓN |
“Pero lo que se ha dicho una vez, siempre puede repetirse” (Zenón de Elea)
“La repetición en el espacio es la armonía” (Jorge Wagensberg)
“La repetición es la única forma de permanencia que la naturaleza puede conseguir” (George Santayana)
“Orden es repetición de unidades, Caos es multiplicidad sin ritmo (M.C. Escher)
Repetición abierta finita
Semántica
Repetir n
veces una expresión x
, siendo n
un número entero mayor o igual que cero. El resultado es una expresión abierta.
- Si
n
es cero, el resultado es la expresión nula θ
.
- Si
n
no es un número o no es un número mayor igual que cero, la expresión se autoevalúa.
Sintaxis
x☆n // repetir x n veces
Definición (recursiva)
〈( x☆n =: ( (θ ← (n = 0) →'
(x ← (n = 1) →' (x (x☆(n−1))↓))↓ ) )〉
Justificación
La repetición es una forma simplificada de especificar una expresión que se repite un cierto número de veces.
Ejemplos
a☆4 // rep. a a a a
( a☆4 ) // rep. ( a a a a ) ev. aaaa
(ab)☆3 // rep. ab ab ab
abc☆0 // ev. θ
α☆3 // rep. α α α
(ab↓)☆3 // rep. a b a b a b
a☆(-3) // se autoevalúa
a☆(3.5) // se autoevalúa
3☆xxx // se autoevalúa
Observaciones
- La repetición es una expresión descriptiva que se define recursivamente.
- El resultado es una expresión abierta para facilitar su conexión con otras operaciones.
- Los operadores
*
y ☆
, aunque tienen relación con la repetición, son diferentes. El operador *
va asociado con la operación de sumar. El operador ☆
indica repetición de una expresión.
Propiedades
〈( (x☆0) = θ )〉 // por la definición
〈( (x☆n)☆m ≡ x☆(n+m) )〉
Ejemplo: (ab☆2)☆3 // rep. ab ab ab ab ab ab eq. ab☆6
〈( (x☆n x☆m)↓ = x☆(n+m) )〉
Ejemplo: (ab☆2 ab☆3) // rep. (ab ab ab ab ab) eq. ( ab☆5 )
〈( θ☆n = θ )〉 // por la definición
〈( ({x☆n} = {x}) )〉
Ejemplo: {ab☆4} // rep. {ab ab ab ab} ev. {ab}
〈( ( x☆n )# = n )〉 // por la definición de repetición y de longitud
Repetición abierta infinita
Semántica
Repetir indefinidamente hacia la izquierda o hacia la derecha. El resultado es una expresión descriptiva abierta.
Sintaxis
x☆ // repetición infinita a la derecha
☆x // repetición infinita a la izquierda
Definición (recursiva)
〈( x☆ =: (x x☆)↓ )〉 // repetición infinita a la derecha
〈( ☆x =: (☆x x)↓ )〉 // repetición infinita a la izquierda
Ejemplos
ab☆ // rep. ab ab ab ...
( ab☆ ) // rep. ( ab ab ab ... )
( 1☆ ) // rep. 111111...
☆123 // rep. ... 123 123 123
sentencia☆
Equivale a la repetición de sentencia infinitas veces. Esto tiene aplicación en la especificación de bucles potencialmente infinitos, que se terminan cuando se cumple una determinada condición.
Propiedades
〈( ( x☆ )# = ∞ )〉 // por la definición de repetición infinita y de longitud
〈( ( ☆x )# = ∞ )〉 // id.
Repetición cerrada
Por razones prácticas, se define adicionalmente la repeticion que produce una secuencia, finita o infinita:
Sintaxis
x★n // repetir x n veces
Definición
Ejemplos
a★4 // rep. ( a a a a ) ev. aaaa
a★ // rep. ( a a a a ... )